AWS Signature V4

Descripcion

Como firmar peticiones http para poder enviarlas a AWS

Documentación AWS Signature V4
V4 Signature en K6

En el programa de testing K6 no permite cargar librerías externas, por lo tanto hay que usar la siguiente librería que usa código javascript directamente para generar la firma:

s0rc3r3r01/awsv4sign

Un código de ejemplo es el siguiente:

import awsv4sign from "./awsv4sign.js";

const awsCredentials = {
    accessKeyId: getCredentialsForIdentity.Credentials.AccessKeyId,
    secretAccessKey: getCredentialsForIdentity.Credentials.SecretKey,
    sessionToken: getCredentialsForIdentity.Credentials.SessionToken,
};

const payload = '{"query":"query MyQuery {listTodos {items {name}}}","variables":null}'

// Firma de la petición a AppSync
const wrappedReq = awsv4sign.v4Sign(
    {
        hostname: 'example.com',
        method: "POST",
        params: {
            headers: {
                "Content-Type": "application/json",
                'Host': 'example.com',
                'X-Amz-Security-Token': "token-example-123456789"
            },
        },
        path: "/graphql",
        query: "",
        service: "appsync",
        payload: payload,
    },
    awsCredentials,
);
Tags

AWS | V4 | Firma